<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>LibTools: H:/project/LibTools/src/tools/internal/__tools.h 源文件</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">LibTools
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.16 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','搜索');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_1563a38af0d3a5e4a6330d6d45e9792a.html">tools</a></li><li class="navelem"><a class="el" href="dir_2ff32e6bd9e4a8118417624d686e897a.html">internal</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">__tools.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="____tools_8h.html">浏览该文件的文档.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*****************************************************************************</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">*  @file     __tools.h                                                       *</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">*  @brief    公用c函数内部使用结构体                                         *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">*  @author   weiqi.li                                                        *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">*  @remarks  仅dll内部使用的文件                                             *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">*  @email    wcmxiaolizi@foxmail.com                                         *</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">*  @version  1.0.0.0                                                         *</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">*****************************************************************************/</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &quot;../tools.h&quot;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">//#include &lt;concrt.h&gt;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">//#include &lt;list&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___m_u_t_e_x_i_n_f_o.html">_MUTEXINFO</a></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;{</div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifdef WIN32 // windows使用临界区</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    CRITICAL_SECTION <a class="code" href="struct___m_u_t_e_x_i_n_f_o.html#a065ba05c5c3dc66fee5a4a7f5172618b">mutex</a>;</div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#elif defined(LINUX) // linux使用互斥锁</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    pthread_mutex_t <a class="code" href="struct___m_u_t_e_x_i_n_f_o.html#a065ba05c5c3dc66fee5a4a7f5172618b">mutex</a>; <span class="comment">// PTHREAD_MUTEX_INITIALIZER</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;}<a class="code" href="____tools_8h.html#a36ce8bdbb796479695c251275e3442e0">MTINFO</a>, *<a class="code" href="____tools_8h.html#a5426e8dc0277759ec246d58996aa8e65">PMTINFO</a>;</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___c_o_n_d_v_a_r_i_n_f_o__.html">_CONDVARINFO_</a></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;{</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#ifdef WIN32</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    CONDITION_VARIABLE <a class="code" href="struct___c_o_n_d_v_a_r_i_n_f_o__.html#a0905ec3d739c2ff2fef2c07985910ae4">cond</a>;<span class="comment">// 条件变量</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="struct___c_o_n_d_v_a_r_i_n_f_o__.html#a0905ec3d739c2ff2fef2c07985910ae4">   35</a></span>&#160;<span class="preprocessor">#elif defined(LINUX)</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="struct___c_o_n_d_v_a_r_i_n_f_o__.html#aef6b078a30d1d642faa98e25c0da5c1c">   36</a></span>&#160;    pthread_cond_t <a class="code" href="struct___c_o_n_d_v_a_r_i_n_f_o__.html#a0905ec3d739c2ff2fef2c07985910ae4">cond</a>;    <span class="comment">// 条件变量</span></div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    pthread_condattr_t <a class="code" href="struct___c_o_n_d_v_a_r_i_n_f_o__.html#aef6b078a30d1d642faa98e25c0da5c1c">attr</a>;<span class="comment">// 条件变量属性</span></div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;}<a class="code" href="____tools_8h.html#a15292c56060724065925b00edd4c24c7">CONDVARINFO</a>,*<a class="code" href="____tools_8h.html#a8654b261ddc7d0250704595f9be92898">PCONDVARINFO</a>;</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#ifdef LINUX</span></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html">_SIGNALINFO</a></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct___s_i_g_n_a_l_i_n_f_o.html#a64b864b0a569822401f13988d432b9f8">   47</a></span>&#160;{</div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct___s_i_g_n_a_l_i_n_f_o.html#a75b75d3fc254292d9e7a25f70946a96e">   48</a></span>&#160;    pthread_condattr_t <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#a64b864b0a569822401f13988d432b9f8">attr</a>;<span class="comment">// 条件变量属性</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct___s_i_g_n_a_l_i_n_f_o.html#a5b56b9ce999041051aa870174f701d6c">   49</a></span>&#160;    pthread_cond_t <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#a75b75d3fc254292d9e7a25f70946a96e">hSignal</a>; <span class="comment">// 条件变量句柄</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct___s_i_g_n_a_l_i_n_f_o.html#a4f9cc83c390a0de95f22ecc8a4b967f2">   50</a></span>&#160;    pthread_mutex_t <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#a5b56b9ce999041051aa870174f701d6c">hMutex</a>; <span class="comment">// 锁</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct___s_i_g_n_a_l_i_n_f_o.html#aac1f754b4e6ff857bbf5163be9e12062">   51</a></span>&#160;    <a class="code" href="tools_8h.html#ac3247c51e4e3de674affb32998e133e2">BOOL</a> <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#a4f9cc83c390a0de95f22ecc8a4b967f2">bEvent</a>;            <span class="comment">// 是否有信号</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct___s_i_g_n_a_l_i_n_f_o.html#af01033ae17f9894c606b3a74ed852baf">   52</a></span>&#160;    <a class="code" href="tools_8h.html#ac3247c51e4e3de674affb32998e133e2">BOOL</a> <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#aac1f754b4e6ff857bbf5163be9e12062">bAutoSignal</a>;       <span class="comment">// 是否自动重置有信号</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct___s_i_g_n_a_l_i_n_f_o.html#afcd02dcd205c32ad019386538d8da4d0">   53</a></span>&#160;    <span class="keywordtype">int</span>  <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#af01033ae17f9894c606b3a74ed852baf">nWaitCount</a>;        <span class="comment">// 等待计数,是否采用惊群</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct___s_i_g_n_a_l_i_n_f_o.html#a53ac9a58074ca48d2f49ad4a0152bca4">   54</a></span>&#160;    <a class="code" href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a> <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#afcd02dcd205c32ad019386538d8da4d0">dwErrno</a>;          <span class="comment">// 保留值，后续兼容</span></div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#a53ac9a58074ca48d2f49ad4a0152bca4">_SIGNALINFO</a>() </div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    {</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#a4f9cc83c390a0de95f22ecc8a4b967f2">bEvent</a> = <a class="code" href="tools_8h.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a>;</div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#aac1f754b4e6ff857bbf5163be9e12062">bAutoSignal</a> = <a class="code" href="tools_8h.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a>;</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#af01033ae17f9894c606b3a74ed852baf">nWaitCount</a> = 0;</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#afcd02dcd205c32ad019386538d8da4d0">dwErrno</a> = 0;</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    }</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="comment">// 安全访问变量值</span></div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <a class="code" href="tools_8h.html#ac3247c51e4e3de674affb32998e133e2">BOOL</a> <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#ad3b51accc3eda2aff3f082c267e39dfd">IsEvent</a>();</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <a class="code" href="tools_8h.html#ac3247c51e4e3de674affb32998e133e2">BOOL</a> <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#ab722d834c8a4eb6d8302dbea7134597e">IsAutoSignal</a>();</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#a8cecdd8b1c7755dc07669e43aa7cc75a">SetEvent</a>(<a class="code" href="tools_8h.html#ac3247c51e4e3de674affb32998e133e2">BOOL</a> bValue);</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;}<a class="code" href="____tools_8h.html#ac7e095a7ab20b0107c6ed47b12a58871">SGINFO</a>, *<a class="code" href="____tools_8h.html#a37132373caa2f9cd0587bbdcd0581ecf">PSGINFO</a>;</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___e_v_e_n_t_f_d.html">_EVENTFD</a></div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct___e_v_e_n_t_f_d.html#af93a0d73c7421ef80e168c305dd913e5">   73</a></span>&#160;{</div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="struct___e_v_e_n_t_f_d.html#ac91577373328fecd20b241ea52602ba5">   74</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="struct___e_v_e_n_t_f_d.html#af93a0d73c7421ef80e168c305dd913e5">efd</a>;            <span class="comment">// 事件ID</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="struct___e_v_e_n_t_f_d.html#a9f69ebc6edc2c4cea9a240ce922bc485">   75</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="struct___e_v_e_n_t_f_d.html#ac91577373328fecd20b241ea52602ba5">waitcount</a>;      <span class="comment">// 正在等待中的数量</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct___e_v_e_n_t_f_d.html#ae77ae0efd015b180d711e7f84dd91ced">   76</a></span>&#160;    <a class="code" href="tools_8h.html#ac3247c51e4e3de674affb32998e133e2">BOOL</a> <a class="code" href="struct___e_v_e_n_t_f_d.html#a9f69ebc6edc2c4cea9a240ce922bc485">bEvent</a>;        <span class="comment">// 是否有信号</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="struct___e_v_e_n_t_f_d.html#aaa68810633d8490b9e4d980283df4a0b">   77</a></span>&#160;    <a class="code" href="tools_8h.html#ac3247c51e4e3de674affb32998e133e2">BOOL</a> <a class="code" href="struct___e_v_e_n_t_f_d.html#ae77ae0efd015b180d711e7f84dd91ced">bAuto</a>;         <span class="comment">// 是否自动重置信号</span></div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <a class="code" href="struct___e_v_e_n_t_f_d.html#aaa68810633d8490b9e4d980283df4a0b">_EVENTFD</a>()</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    {</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        <a class="code" href="struct___e_v_e_n_t_f_d.html#af93a0d73c7421ef80e168c305dd913e5">efd</a> = 0;</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <a class="code" href="struct___e_v_e_n_t_f_d.html#ac91577373328fecd20b241ea52602ba5">waitcount</a> = 0;</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <a class="code" href="struct___e_v_e_n_t_f_d.html#a9f69ebc6edc2c4cea9a240ce922bc485">bEvent</a> = <a class="code" href="tools_8h.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a>;</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <a class="code" href="struct___e_v_e_n_t_f_d.html#ae77ae0efd015b180d711e7f84dd91ced">bAuto</a> = <a class="code" href="tools_8h.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a>;</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    }</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;}<a class="code" href="____tools_8h.html#ad5c59d0b22618a57b95ba5825bc648ae">EVENTFD</a>,*<a class="code" href="____tools_8h.html#aed7a8fbfa2ff233f4bb75136e358354b">PEVENTFD</a>;</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct___s_i_g_n_a_l_i_n_f_o.html#ab722d834c8a4eb6d8302dbea7134597e">   87</a></span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="keyword">inline</span> <a class="code" href="tools_8h.html#ac3247c51e4e3de674affb32998e133e2">BOOL</a> <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#ab722d834c8a4eb6d8302dbea7134597e">SGINFO::IsAutoSignal</a>()</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;{</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keywordflow">return</span> this-&gt;<a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#aac1f754b4e6ff857bbf5163be9e12062">bAutoSignal</a>;</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;}</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="struct___s_i_g_n_a_l_i_n_f_o.html#ad3b51accc3eda2aff3f082c267e39dfd">   92</a></span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="keyword">inline</span> <a class="code" href="tools_8h.html#ac3247c51e4e3de674affb32998e133e2">BOOL</a> <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#ad3b51accc3eda2aff3f082c267e39dfd">SGINFO::IsEvent</a>()</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;{</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="keywordflow">return</span> this-&gt;<a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#a4f9cc83c390a0de95f22ecc8a4b967f2">bEvent</a>;</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;}</div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct___s_i_g_n_a_l_i_n_f_o.html#a8cecdd8b1c7755dc07669e43aa7cc75a">   97</a></span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#a8cecdd8b1c7755dc07669e43aa7cc75a">SGINFO::SetEvent</a>(<a class="code" href="tools_8h.html#ac3247c51e4e3de674affb32998e133e2">BOOL</a> bValue)</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;{</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    pthread_mutex_lock(&amp;this-&gt;<a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#a5b56b9ce999041051aa870174f701d6c">hMutex</a>);</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    this-&gt;<a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#a4f9cc83c390a0de95f22ecc8a4b967f2">bEvent</a> = bValue;</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    pthread_mutex_unlock(&amp;this-&gt;<a class="code" href="struct___s_i_g_n_a_l_i_n_f_o.html#a5b56b9ce999041051aa870174f701d6c">hMutex</a>);</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;}</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_____dir_info.html">__DirInfo</a></div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="struct_____dir_info.html#a1edd4b3d5747cf3b79633bbf83bf7929">  110</a></span>&#160;{</div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="struct_____dir_info.html#a7aa17ca5adb455c000e735f6b95c0664">  111</a></span>&#160;    DIR* <a class="code" href="struct_____dir_info.html#a1edd4b3d5747cf3b79633bbf83bf7929">pDir</a>;</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <a class="code" href="tools_8h.html#a65c91f8d7af3c67b8a21e089fdddd0fe">TCHAR</a> <a class="code" href="struct_____dir_info.html#a7aa17ca5adb455c000e735f6b95c0664">szDir</a>[<a class="code" href="tools_8h.html#ab99ded389af74001a6298fc9e44e74e5">MAX_PATH</a>];</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;}<a class="code" href="____tools_8h.html#a4cd269b64edb5c921dfa7aa306263049">DirInfo</a>, *<a class="code" href="____tools_8h.html#a565e7283eec03945bf2ae191c43e8647">PDirInfo</a>;</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="comment">//USE_LIBTOOLS;</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="astruct___s_i_g_n_a_l_i_n_f_o_html_ad3b51accc3eda2aff3f082c267e39dfd"><div class="ttname"><a href="struct___s_i_g_n_a_l_i_n_f_o.html#ad3b51accc3eda2aff3f082c267e39dfd">_SIGNALINFO::IsEvent</a></div><div class="ttdeci">BOOL IsEvent()</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00092">__tools.h:92</a></div></div>
<div class="ttc" id="atools_8h_html_a65c91f8d7af3c67b8a21e089fdddd0fe"><div class="ttname"><a href="tools_8h.html#a65c91f8d7af3c67b8a21e089fdddd0fe">TCHAR</a></div><div class="ttdeci">#define TCHAR</div><div class="ttdef"><b>Definition:</b> <a href="tools_8h_source.html#l00187">tools.h:187</a></div></div>
<div class="ttc" id="astruct___e_v_e_n_t_f_d_html_ac91577373328fecd20b241ea52602ba5"><div class="ttname"><a href="struct___e_v_e_n_t_f_d.html#ac91577373328fecd20b241ea52602ba5">_EVENTFD::waitcount</a></div><div class="ttdeci">int waitcount</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00074">__tools.h:74</a></div></div>
<div class="ttc" id="a____tools_8h_html_ac7e095a7ab20b0107c6ed47b12a58871"><div class="ttname"><a href="____tools_8h.html#ac7e095a7ab20b0107c6ed47b12a58871">SGINFO</a></div><div class="ttdeci">struct _SIGNALINFO SGINFO</div><div class="ttdoc">内部使用结构体，已废弃</div></div>
<div class="ttc" id="a____tools_8h_html_a5426e8dc0277759ec246d58996aa8e65"><div class="ttname"><a href="____tools_8h.html#a5426e8dc0277759ec246d58996aa8e65">PMTINFO</a></div><div class="ttdeci">struct _MUTEXINFO * PMTINFO</div></div>
<div class="ttc" id="astruct___e_v_e_n_t_f_d_html_ae77ae0efd015b180d711e7f84dd91ced"><div class="ttname"><a href="struct___e_v_e_n_t_f_d.html#ae77ae0efd015b180d711e7f84dd91ced">_EVENTFD::bAuto</a></div><div class="ttdeci">BOOL bAuto</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00076">__tools.h:76</a></div></div>
<div class="ttc" id="astruct___c_o_n_d_v_a_r_i_n_f_o___html_aef6b078a30d1d642faa98e25c0da5c1c"><div class="ttname"><a href="struct___c_o_n_d_v_a_r_i_n_f_o__.html#aef6b078a30d1d642faa98e25c0da5c1c">_CONDVARINFO_::attr</a></div><div class="ttdeci">pthread_condattr_t attr</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00036">__tools.h:36</a></div></div>
<div class="ttc" id="astruct___s_i_g_n_a_l_i_n_f_o_html_aac1f754b4e6ff857bbf5163be9e12062"><div class="ttname"><a href="struct___s_i_g_n_a_l_i_n_f_o.html#aac1f754b4e6ff857bbf5163be9e12062">_SIGNALINFO::bAutoSignal</a></div><div class="ttdeci">BOOL bAutoSignal</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00051">__tools.h:51</a></div></div>
<div class="ttc" id="astruct___s_i_g_n_a_l_i_n_f_o_html_ab722d834c8a4eb6d8302dbea7134597e"><div class="ttname"><a href="struct___s_i_g_n_a_l_i_n_f_o.html#ab722d834c8a4eb6d8302dbea7134597e">_SIGNALINFO::IsAutoSignal</a></div><div class="ttdeci">BOOL IsAutoSignal()</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00087">__tools.h:87</a></div></div>
<div class="ttc" id="a____tools_8h_html_a8654b261ddc7d0250704595f9be92898"><div class="ttname"><a href="____tools_8h.html#a8654b261ddc7d0250704595f9be92898">PCONDVARINFO</a></div><div class="ttdeci">struct _CONDVARINFO_ * PCONDVARINFO</div></div>
<div class="ttc" id="astruct___s_i_g_n_a_l_i_n_f_o_html_a5b56b9ce999041051aa870174f701d6c"><div class="ttname"><a href="struct___s_i_g_n_a_l_i_n_f_o.html#a5b56b9ce999041051aa870174f701d6c">_SIGNALINFO::hMutex</a></div><div class="ttdeci">pthread_mutex_t hMutex</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00049">__tools.h:49</a></div></div>
<div class="ttc" id="astruct_____dir_info_html_a7aa17ca5adb455c000e735f6b95c0664"><div class="ttname"><a href="struct_____dir_info.html#a7aa17ca5adb455c000e735f6b95c0664">__DirInfo::szDir</a></div><div class="ttdeci">TCHAR szDir[MAX_PATH]</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00111">__tools.h:111</a></div></div>
<div class="ttc" id="a____tools_8h_html_ad5c59d0b22618a57b95ba5825bc648ae"><div class="ttname"><a href="____tools_8h.html#ad5c59d0b22618a57b95ba5825bc648ae">EVENTFD</a></div><div class="ttdeci">struct _EVENTFD EVENTFD</div><div class="ttdoc">内部使用结构体 时间结构体</div></div>
<div class="ttc" id="astruct___e_v_e_n_t_f_d_html_a9f69ebc6edc2c4cea9a240ce922bc485"><div class="ttname"><a href="struct___e_v_e_n_t_f_d.html#a9f69ebc6edc2c4cea9a240ce922bc485">_EVENTFD::bEvent</a></div><div class="ttdeci">BOOL bEvent</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00075">__tools.h:75</a></div></div>
<div class="ttc" id="astruct___s_i_g_n_a_l_i_n_f_o_html_a64b864b0a569822401f13988d432b9f8"><div class="ttname"><a href="struct___s_i_g_n_a_l_i_n_f_o.html#a64b864b0a569822401f13988d432b9f8">_SIGNALINFO::attr</a></div><div class="ttdeci">pthread_condattr_t attr</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00047">__tools.h:47</a></div></div>
<div class="ttc" id="a____tools_8h_html_a15292c56060724065925b00edd4c24c7"><div class="ttname"><a href="____tools_8h.html#a15292c56060724065925b00edd4c24c7">CONDVARINFO</a></div><div class="ttdeci">struct _CONDVARINFO_ CONDVARINFO</div><div class="ttdoc">内部使用结构体 条件变量结构体</div></div>
<div class="ttc" id="astruct_____dir_info_html_a1edd4b3d5747cf3b79633bbf83bf7929"><div class="ttname"><a href="struct_____dir_info.html#a1edd4b3d5747cf3b79633bbf83bf7929">__DirInfo::pDir</a></div><div class="ttdeci">DIR * pDir</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00110">__tools.h:110</a></div></div>
<div class="ttc" id="astruct___c_o_n_d_v_a_r_i_n_f_o___html_a0905ec3d739c2ff2fef2c07985910ae4"><div class="ttname"><a href="struct___c_o_n_d_v_a_r_i_n_f_o__.html#a0905ec3d739c2ff2fef2c07985910ae4">_CONDVARINFO_::cond</a></div><div class="ttdeci">pthread_cond_t cond</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00035">__tools.h:35</a></div></div>
<div class="ttc" id="astruct___s_i_g_n_a_l_i_n_f_o_html_afcd02dcd205c32ad019386538d8da4d0"><div class="ttname"><a href="struct___s_i_g_n_a_l_i_n_f_o.html#afcd02dcd205c32ad019386538d8da4d0">_SIGNALINFO::dwErrno</a></div><div class="ttdeci">DWORD dwErrno</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00053">__tools.h:53</a></div></div>
<div class="ttc" id="astruct___s_i_g_n_a_l_i_n_f_o_html_a8cecdd8b1c7755dc07669e43aa7cc75a"><div class="ttname"><a href="struct___s_i_g_n_a_l_i_n_f_o.html#a8cecdd8b1c7755dc07669e43aa7cc75a">_SIGNALINFO::SetEvent</a></div><div class="ttdeci">void SetEvent(BOOL bValue)</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00097">__tools.h:97</a></div></div>
<div class="ttc" id="astruct___m_u_t_e_x_i_n_f_o_html"><div class="ttname"><a href="struct___m_u_t_e_x_i_n_f_o.html">_MUTEXINFO</a></div><div class="ttdoc">内部使用结构体 锁结构体</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00017">__tools.h:17</a></div></div>
<div class="ttc" id="a____tools_8h_html_a565e7283eec03945bf2ae191c43e8647"><div class="ttname"><a href="____tools_8h.html#a565e7283eec03945bf2ae191c43e8647">PDirInfo</a></div><div class="ttdeci">struct __DirInfo * PDirInfo</div></div>
<div class="ttc" id="a____tools_8h_html_aed7a8fbfa2ff233f4bb75136e358354b"><div class="ttname"><a href="____tools_8h.html#aed7a8fbfa2ff233f4bb75136e358354b">PEVENTFD</a></div><div class="ttdeci">struct _EVENTFD * PEVENTFD</div></div>
<div class="ttc" id="astruct___s_i_g_n_a_l_i_n_f_o_html_af01033ae17f9894c606b3a74ed852baf"><div class="ttname"><a href="struct___s_i_g_n_a_l_i_n_f_o.html#af01033ae17f9894c606b3a74ed852baf">_SIGNALINFO::nWaitCount</a></div><div class="ttdeci">int nWaitCount</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00052">__tools.h:52</a></div></div>
<div class="ttc" id="astruct___e_v_e_n_t_f_d_html_aaa68810633d8490b9e4d980283df4a0b"><div class="ttname"><a href="struct___e_v_e_n_t_f_d.html#aaa68810633d8490b9e4d980283df4a0b">_EVENTFD::_EVENTFD</a></div><div class="ttdeci">_EVENTFD()</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00077">__tools.h:77</a></div></div>
<div class="ttc" id="atools_8h_html_ab99ded389af74001a6298fc9e44e74e5"><div class="ttname"><a href="tools_8h.html#ab99ded389af74001a6298fc9e44e74e5">MAX_PATH</a></div><div class="ttdeci">#define MAX_PATH</div><div class="ttdef"><b>Definition:</b> <a href="tools_8h_source.html#l00149">tools.h:149</a></div></div>
<div class="ttc" id="astruct___m_u_t_e_x_i_n_f_o_html_a065ba05c5c3dc66fee5a4a7f5172618b"><div class="ttname"><a href="struct___m_u_t_e_x_i_n_f_o.html#a065ba05c5c3dc66fee5a4a7f5172618b">_MUTEXINFO::mutex</a></div><div class="ttdeci">pthread_mutex_t mutex</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00028">__tools.h:28</a></div></div>
<div class="ttc" id="astruct___c_o_n_d_v_a_r_i_n_f_o___html"><div class="ttname"><a href="struct___c_o_n_d_v_a_r_i_n_f_o__.html">_CONDVARINFO_</a></div><div class="ttdoc">内部使用结构体 条件变量结构体</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00030">__tools.h:30</a></div></div>
<div class="ttc" id="astruct___e_v_e_n_t_f_d_html"><div class="ttname"><a href="struct___e_v_e_n_t_f_d.html">_EVENTFD</a></div><div class="ttdoc">内部使用结构体 时间结构体</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00071">__tools.h:71</a></div></div>
<div class="ttc" id="atools_8h_html_aa93f0eb578d23995850d61f7d61c55c1"><div class="ttname"><a href="tools_8h.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a></div><div class="ttdeci">#define FALSE</div><div class="ttdef"><b>Definition:</b> <a href="tools_8h_source.html#l00148">tools.h:148</a></div></div>
<div class="ttc" id="astruct___s_i_g_n_a_l_i_n_f_o_html_a75b75d3fc254292d9e7a25f70946a96e"><div class="ttname"><a href="struct___s_i_g_n_a_l_i_n_f_o.html#a75b75d3fc254292d9e7a25f70946a96e">_SIGNALINFO::hSignal</a></div><div class="ttdeci">pthread_cond_t hSignal</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00048">__tools.h:48</a></div></div>
<div class="ttc" id="atools_8h_html_a798af1e30bc65f319c1a246cecf59e39"><div class="ttname"><a href="tools_8h.html#a798af1e30bc65f319c1a246cecf59e39">DWORD</a></div><div class="ttdeci">unsigned int DWORD</div><div class="ttdef"><b>Definition:</b> <a href="tools_8h_source.html#l00134">tools.h:134</a></div></div>
<div class="ttc" id="a____tools_8h_html_a36ce8bdbb796479695c251275e3442e0"><div class="ttname"><a href="____tools_8h.html#a36ce8bdbb796479695c251275e3442e0">MTINFO</a></div><div class="ttdeci">struct _MUTEXINFO MTINFO</div><div class="ttdoc">内部使用结构体 锁结构体</div></div>
<div class="ttc" id="a____tools_8h_html_a37132373caa2f9cd0587bbdcd0581ecf"><div class="ttname"><a href="____tools_8h.html#a37132373caa2f9cd0587bbdcd0581ecf">PSGINFO</a></div><div class="ttdeci">struct _SIGNALINFO * PSGINFO</div></div>
<div class="ttc" id="astruct___s_i_g_n_a_l_i_n_f_o_html_a4f9cc83c390a0de95f22ecc8a4b967f2"><div class="ttname"><a href="struct___s_i_g_n_a_l_i_n_f_o.html#a4f9cc83c390a0de95f22ecc8a4b967f2">_SIGNALINFO::bEvent</a></div><div class="ttdeci">BOOL bEvent</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00050">__tools.h:50</a></div></div>
<div class="ttc" id="atools_8h_html_ac3247c51e4e3de674affb32998e133e2"><div class="ttname"><a href="tools_8h.html#ac3247c51e4e3de674affb32998e133e2">BOOL</a></div><div class="ttdeci">unsigned int BOOL</div><div class="ttdef"><b>Definition:</b> <a href="tools_8h_source.html#l00137">tools.h:137</a></div></div>
<div class="ttc" id="a____tools_8h_html_a4cd269b64edb5c921dfa7aa306263049"><div class="ttname"><a href="____tools_8h.html#a4cd269b64edb5c921dfa7aa306263049">DirInfo</a></div><div class="ttdeci">struct __DirInfo DirInfo</div><div class="ttdoc">内部使用结构体 目录结构句柄</div></div>
<div class="ttc" id="astruct___s_i_g_n_a_l_i_n_f_o_html_a53ac9a58074ca48d2f49ad4a0152bca4"><div class="ttname"><a href="struct___s_i_g_n_a_l_i_n_f_o.html#a53ac9a58074ca48d2f49ad4a0152bca4">_SIGNALINFO::_SIGNALINFO</a></div><div class="ttdeci">_SIGNALINFO()</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00054">__tools.h:54</a></div></div>
<div class="ttc" id="astruct_____dir_info_html"><div class="ttname"><a href="struct_____dir_info.html">__DirInfo</a></div><div class="ttdoc">内部使用结构体 目录结构句柄</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00108">__tools.h:108</a></div></div>
<div class="ttc" id="astruct___s_i_g_n_a_l_i_n_f_o_html"><div class="ttname"><a href="struct___s_i_g_n_a_l_i_n_f_o.html">_SIGNALINFO</a></div><div class="ttdoc">内部使用结构体，已废弃</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00045">__tools.h:45</a></div></div>
<div class="ttc" id="astruct___e_v_e_n_t_f_d_html_af93a0d73c7421ef80e168c305dd913e5"><div class="ttname"><a href="struct___e_v_e_n_t_f_d.html#af93a0d73c7421ef80e168c305dd913e5">_EVENTFD::efd</a></div><div class="ttdeci">int efd</div><div class="ttdef"><b>Definition:</b> <a href="____tools_8h_source.html#l00073">__tools.h:73</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者 &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16
</small></address>
</body>
</html>
